home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
MACD 5
/
MACD 5.bin
/
workbench
/
monitory
/
sysmon
/
include
/
sysmon.i
< prev
Wrap
Text File
|
1995-11-19
|
6KB
|
181 lines
** sysmon.i
**
** $Filename: sysmon.i $
** $Revision: 0.6 $
** $Date: 1995/11/04 14:06:58 $
**
*******************************************************************************
** definition of sysmon.library base and internal structures (version 0.6)
*******************************************************************************
**
** Copyright (c) 1995 by Etienne Vogt.
**
IFND SYSMON_I
SYSMON_I SET 1
IFND EXEC_TYPES_I
INCLUDE "exec/types.i"
ENDC ; EXEC_TYPES_I
IFND EXEC_LIBRARIES_I
INCLUDE "exec/libraries.i"
ENDC ; EXEC_LIBRARIES_I
IFND DEVICES_TIMER_I
INCLUDE "devices/timer.i"
ENDC ; DEVICES_TIMER_I
IFND DOS_DATETIME_I
INCLUDE "dos/datetime.i"
ENDC ; DOS_DATETIME_I
* library data structure
* All field in the SysmonBase structure are PRIVATE !!!
* Don't access these directly as they will change in future versions.
* You have been warned !!!
HASHSIZE EQU 32
HASHMASK EQU $f8
STRUCTURE SysmonBase,LIB_SIZE ; Standard lib node
UBYTE sb_Flags ; Some flags here
UBYTE sb_pad ; We are now longword aligned
APTR sb_ExecBase ; Pointer to exec
APTR sb_UtilityBase ; Pointer to utility
BPTR sb_SegList ; SegList BCPL pointer
APTR sb_CurrTaskInfo ; Current TaskInfo Structure
APTR sb_Switch ; Original Switch() entry point
APTR sb_Dispatch ; Original Dispatch() entry point
APTR sb_AddTask ; Original AddTask() entry point
APTR sb_RemTask ; Original RemTask() entry point
APTR sb_TaskExit ; Original ExecBase->TaskExitCode
STRUCT sb_TimeReq,IOTV_SIZE ; Time Request
STRUCT sb_TempTime,EV_SIZE ; Temporary EClock Time
STRUCT sb_TaskFrozen,LH_SIZE ; Frozen task list
UWORD sb_Reserved0 ; For longword alignment
STRUCT sb_TaskInfoHash,4*HASHSIZE ; TaskInfo hash table
APTR sb_FindTask ; Original FindTask() entry point
APTR sb_ServerEntry ; Server process entry point
APTR sb_ServerName ; Server process name
APTR sb_SyslogFile ; SysLog file name
APTR sb_SyslogWindow ; Syslog Window Name
UBYTE sb_FilePri ; File logging priority
UBYTE sb_WindowPri ; Window logging priority
UBYTE sb_ConsolePri ; Console logging priority
UBYTE sb_NumLogBuffers ; Number of allocated Buffers
APTR sb_Buffers ; Pointer to allocated buffers
APTR sb_DOSBase ; Pointer to dos
APTR sb_DateTime ; struct DateTime used by syslog
ULONG sb_StampPeriod ; Period for syslog file stamp
BPTR sb_LogWindowHandle ; LogWindow file handle
APTR sb_IntuitionBase ; Pointer to intuition
ULONG sb_LastGuru ; Guru Meditation code after crash
APTR sb_SyslogPort ; Pointer to Syslog MsgPort
LABEL SysmonBase_SIZEOF
* The TaskInfo structure contains the CPU usage information in EClock ticks.
* The link pointers are private and should not be used. Use the smNextTaskInfo()
* function to traverse the list.
* This structure may be extended later with new fields.
STRUCTURE TaskInfo,0
APTR ti_Link ; private pointer to next TaskInfo
APTR ti_Pred ; private pointer to previous TaskInfo
APTR ti_Task ; pointer to Task Control Block
ULONG ti_DispCount ; Task Dispatch counter
STRUCT ti_StartTime,EV_SIZE ; Starting EClock Time
STRUCT ti_LaunchTime,EV_SIZE ; Last Launch Time
STRUCT ti_CPUTime,EV_SIZE ; Cumulated CPU Time
LABEL TaskInfo_SIZEOF
* This is the private structure used by smVSysLog() to communicate with the
* Sysmon.server process.
SM_MAXLOGCHARS EQU 256 ; Max bytes in SysLog message
STRUCTURE SysLogMsg,MN_SIZE ; Message structure
ULONG slm_Priority ; SysLog priority and flags
STRUCT slm_Text,SM_MAXLOGCHARS ; Syslog Message body
LABEL SysLogMsg_SIZEOF
SYSMONNAME MACRO
DC.B 'sysmon.library',0
ENDM
SERVERNAME MACRO
DC.B 'Sysmon.server',0
ENDM
* sb_Flags bits
BITDEF SBF,FPU,0 ; System has a FPU
BITDEF SBF,IDLELED,1 ; Dim power LED when CPU is idle
* Alert definitions
* These are the Guru codes that sysmon.library can spit out in a panic
* condition.
AN_Sysmon EQU $40000000 ; SubSystem ID
AN_smNoTaskInfo EQU $C0000001 ; No TaskInfo at Dispatch() time
AN_smNoTIMem EQU $40010002 ; No mem for TaskInfo at startup
AN_smSysLogBuf EQU $40010003 ; No memory for syslog buffers
AN_BadSysLogMsg EQU $40000004 ; Bad SysLogMsg received by server
AO_Sysmon EQU $00008040 ; Alert object
* New Task States Definitions
* TS_STOP is not a real state. It is used by ShowSys to identify tasks that
* are stuck in a Wait(0) call, such as crashed tasks that have been suspended.
TS_FROZENW EQU $80 ; Frozen task that was in WAIT state
TS_STOP EQU TS_FROZENW ; Stopped task (Wait(0L))
TS_FROZEN EQU $81 ; Frozen task
* SysLog priorities and flags
* The priorities are similar to that used on UNIX systems. This means that
* the values use the UNIX ordering that is reversed from the Amiga one.
* The flags are Amiga and sysmon specifics.
LOG_EMERG EQU 0 ; Panic condition (Guru time)
LOG_ALERT EQU 1 ; Very serious problem
LOG_CRIT EQU 2 ; Critical error
LOG_ERR EQU 3 ; General error condition
LOG_WARN EQU 4 ; Warning condition
LOG_NOTICE EQU 5 ; Noticeable event
LOG_INFO EQU 6 ; General informational event
LOG_DEBUG EQU 7 ; Debugging information
LOG_PRI EQU $7 ; Mask for priority field
LOG_INUSE EQU $80000000 ; Message is in use (private !)
LOG_NOHEAD EQU $40000000 ; Don't prepend header
LOG_NOWIN EQU $20000000 ; Don't output to window
LOG_NOFILE EQU $10000000 ; Don't output to file
LOGB_INUSE EQU 31 ; Bit numbers for flags
LOGB_NOHEAD EQU 30
LOGB_NOWIN EQU 29
LOGB_NOFILE EQU 28
* Flags definitions for smHalt()
BITDEF HALT,REBOOT,0 ; Reboot immediately
BITDEF HALT,REKICK,1 ; Reload kickstart on MMU-Kicked systems.
* Function LVOs *
INCLUDE "exec/funcdef.i"
FUNCDEF smGetTaskInfo
FUNCDEF smFreeze
FUNCDEF smUnFreeze
FUNCDEF smSleep
FUNCDEF smVKPrintf
FUNCDEF smVSPrintf
FUNCDEF smVSysLog
FUNCDEF smFindTaskInfo
FUNCDEF smNextTaskInfo
FUNCDEF smHalt
ENDC ;SYSMON_I